<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/init.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/init.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="Maybe">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X0xJTlVYX0lOSVRfSF8w"><span class="b">_LINUX_INIT_H</span></a>
<a name="2" /><span class="Maybe">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X0xJTlVYX0lOSVRfSF8w"><span class="b">_LINUX_INIT_H</span></a>
<a name="3" /><span class="Maybe">       3:</span> 
<a name="4" /><span class="Maybe">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">compiler</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="Maybe">       5:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="6" /><span class="Maybe">       6:</span> 
<a name="7" /><span class="Maybe">       7:</span> <span class="k">/* These macros are used to mark some functions or </span>
<a name="8" /><span class="Maybe">       8:</span> <span class="k"> * initialized data (doesn&apos;t apply to uninitialized data)</span>
<a name="9" /><span class="Maybe">       9:</span> <span class="k"> * as `initialization&apos; functions. The kernel can take this</span>
<a name="10" /><span class="Maybe">      10:</span> <span class="k"> * as hint that the function is used only during the initialization</span>
<a name="11" /><span class="Maybe">      11:</span> <span class="k"> * phase and free up used memory resources after</span>
<a name="12" /><span class="Maybe">      12:</span> <span class="k"> *</span>
<a name="13" /><span class="Maybe">      13:</span> <span class="k"> * Usage:</span>
<a name="14" /><span class="Maybe">      14:</span> <span class="k"> * For functions:</span>
<a name="15" /><span class="Maybe">      15:</span> <span class="k"> * </span>
<a name="16" /><span class="Maybe">      16:</span> <span class="k"> * You should add __init immediately before the function name, like:</span>
<a name="17" /><span class="Maybe">      17:</span> <span class="k"> *</span>
<a name="18" /><span class="Maybe">      18:</span> <span class="k"> * static void __init initme(int x, int y)</span>
<a name="19" /><span class="Maybe">      19:</span> <span class="k"> * {</span>
<a name="20" /><span class="Maybe">      20:</span> <span class="k"> *    extern int z; z = x * y;</span>
<a name="21" /><span class="Maybe">      21:</span> <span class="k"> * }</span>
<a name="22" /><span class="Maybe">      22:</span> <span class="k"> *</span>
<a name="23" /><span class="Maybe">      23:</span> <span class="k"> * If the function has a prototype somewhere, you can also add</span>
<a name="24" /><span class="Maybe">      24:</span> <span class="k"> * __init between closing brace of the prototype and semicolon:</span>
<a name="25" /><span class="Maybe">      25:</span> <span class="k"> *</span>
<a name="26" /><span class="Maybe">      26:</span> <span class="k"> * extern int initialize_foobar_device(int, int, int) __init;</span>
<a name="27" /><span class="Maybe">      27:</span> <span class="k"> *</span>
<a name="28" /><span class="Maybe">      28:</span> <span class="k"> * For initialized data:</span>
<a name="29" /><span class="Maybe">      29:</span> <span class="k"> * You should insert __initdata or __initconst between the variable name</span>
<a name="30" /><span class="Maybe">      30:</span> <span class="k"> * and equal sign followed by value, e.g.:</span>
<a name="31" /><span class="Maybe">      31:</span> <span class="k"> *</span>
<a name="32" /><span class="Maybe">      32:</span> <span class="k"> * static int init_variable __initdata = 0;</span>
<a name="33" /><span class="Maybe">      33:</span> <span class="k"> * static const char linux_logo[] __initconst = { 0x32, 0x36, ... };</span>
<a name="34" /><span class="Maybe">      34:</span> <span class="k"> *</span>
<a name="35" /><span class="Maybe">      35:</span> <span class="k"> * Don&apos;t forget to initialize data not at file scope, i.e. within a function,</span>
<a name="36" /><span class="Maybe">      36:</span> <span class="k"> * as gcc otherwise puts the data into the bss section and not into the init</span>
<a name="37" /><span class="Maybe">      37:</span> <span class="k"> * section.</span>
<a name="38" /><span class="Maybe">      38:</span> <span class="k"> */</span>
<a name="39" /><span class="Maybe">      39:</span> 
<a name="40" /><span class="Maybe">      40:</span> <span class="k">/* These are for everybody (although not all archs will actually</span>
<a name="41" /><span class="Maybe">      41:</span> <span class="k">   discard it in modules) */</span>
<a name="42" /><span class="Maybe">      42:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a>        <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">init</span><span class="f">.</span><span class="b">text</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19jb2xkXzA_"><span class="b">__cold</span></a> <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="43" /><span class="Maybe">      43:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19pbml0ZGF0YV8w"><span class="b">__initdata</span></a>    <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">init</span><span class="f">.</span><span class="b">data</span><span class="f">)</span>
<a name="44" /><span class="Maybe">      44:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19pbml0Y29uc3RfMA__"><span class="b">__initconst</span></a>    <a href="cpu.c_macros_ref.html#_X19jb25zdHNlY3Rpb25fMA__"><span class="b">__constsection</span></a><span class="f">(</span><span class="f">.</span><span class="b">init</span><span class="f">.</span><span class="b">rodata</span><span class="f">)</span>
<a name="45" /><span class="Maybe">      45:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0ZGF0YV8w"><span class="b">__exitdata</span></a>    <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">exit</span><span class="f">.</span><span class="b">data</span><span class="f">)</span>
<a name="46" /><span class="Maybe">      46:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0X2NhbGxfMA__"><span class="b">__exit_call</span></a>    <a href="cpu.c_macros_ref.html#_X191c2VkXzA_"><span class="b">__used</span></a> <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">exitcall</span><span class="f">.</span><span class="b">exit</span><span class="f">)</span>
<a name="47" /><span class="Maybe">      47:</span> 
<a name="48" /><span class="Maybe">      48:</span> <span class="k">/*</span>
<a name="49" /><span class="Maybe">      49:</span> <span class="k"> * Some architecture have tool chains which do not handle rodata attributes</span>
<a name="50" /><span class="Maybe">      50:</span> <span class="k"> * correctly. For those disable special sections for const, so that other</span>
<a name="51" /><span class="Maybe">      51:</span> <span class="k"> * architectures can annotate correctly.</span>
<a name="52" /><span class="Maybe">      52:</span> <span class="k"> */</span>
<a name="53" /><span class="False">      53:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_BROKEN_RODATA</span>
<a name="54" /><span class="False">      54:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19jb25zdHNlY3Rpb25fMA__"><span class="b">__constsection</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="55" /><span class="Maybe">      55:</span> <span class="f">#</span><span class="n">else</span>
<a name="56" /><span class="Maybe">      56:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19jb25zdHNlY3Rpb25fMA__"><span class="b">__constsection</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>
<a name="57" /><span class="Maybe">      57:</span> <span class="f">#</span><span class="n">endif</span>
<a name="58" /><span class="Maybe">      58:</span> 
<a name="59" /><span class="Maybe">      59:</span> <span class="k">/*</span>
<a name="60" /><span class="Maybe">      60:</span> <span class="k"> * modpost check for section mismatches during the kernel build.</span>
<a name="61" /><span class="Maybe">      61:</span> <span class="k"> * A section mismatch happens when there are references from a</span>
<a name="62" /><span class="Maybe">      62:</span> <span class="k"> * code or data section to an init section (both code or data).</span>
<a name="63" /><span class="Maybe">      63:</span> <span class="k"> * The init sections are (for most archs) discarded by the kernel</span>
<a name="64" /><span class="Maybe">      64:</span> <span class="k"> * when early init has completed so all such references are potential bugs.</span>
<a name="65" /><span class="Maybe">      65:</span> <span class="k"> * For exit sections the same issue exists.</span>
<a name="66" /><span class="Maybe">      66:</span> <span class="k"> *</span>
<a name="67" /><span class="Maybe">      67:</span> <span class="k"> * The following markers are used for the cases where the reference to</span>
<a name="68" /><span class="Maybe">      68:</span> <span class="k"> * the *init / *exit section (code or data) is valid and will teach</span>
<a name="69" /><span class="Maybe">      69:</span> <span class="k"> * modpost not to issue a warning.  Intended semantics is that a code or</span>
<a name="70" /><span class="Maybe">      70:</span> <span class="k"> * data tagged __ref* can reference code or data from init section without</span>
<a name="71" /><span class="Maybe">      71:</span> <span class="k"> * producing a warning (of course, no warning does not mean code is</span>
<a name="72" /><span class="Maybe">      72:</span> <span class="k"> * correct, so optimally document why the __ref is needed and why it&apos;s OK).</span>
<a name="73" /><span class="Maybe">      73:</span> <span class="k"> *</span>
<a name="74" /><span class="Maybe">      74:</span> <span class="k"> * The markers follow same syntax rules as __init / __initdata.</span>
<a name="75" /><span class="Maybe">      75:</span> <span class="k"> */</span>
<a name="76" /><span class="Maybe">      76:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a>            <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">ref</span><span class="f">.</span><span class="b">text</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_bm9pbmxpbmVfMA__"><span class="b">noinline</span></a>
<a name="77" /><span class="Maybe">      77:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19yZWZkYXRhXzA_"><span class="b">__refdata</span></a>        <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">ref</span><span class="f">.</span><span class="b">data</span><span class="f">)</span>
<a name="78" /><span class="Maybe">      78:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19yZWZjb25zdF8w"><span class="b">__refconst</span></a>       <a href="cpu.c_macros_ref.html#_X19jb25zdHNlY3Rpb25fMA__"><span class="b">__constsection</span></a><span class="f">(</span><span class="f">.</span><span class="b">ref</span><span class="f">.</span><span class="b">rodata</span><span class="f">)</span>
<a name="79" /><span class="Maybe">      79:</span> 
<a name="80" /><span class="Maybe">      80:</span> <span class="k">/* compatibility defines */</span>
<a name="81" /><span class="Maybe">      81:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0X3JlZm9rXzA_"><span class="b">__init_refok</span></a>     <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a>
<a name="82" /><span class="Maybe">      82:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0ZGF0YV9yZWZva18w"><span class="b">__initdata_refok</span></a> <a href="cpu.c_macros_noref.html#_X19yZWZkYXRhXzA_"><span class="b">__refdata</span></a>
<a name="83" /><span class="Maybe">      83:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0X3JlZm9rXzA_"><span class="b">__exit_refok</span></a>     <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a>
<a name="84" /><span class="Maybe">      84:</span> 
<a name="85" /><span class="Maybe">      85:</span> 
<a name="86" /><span class="False">      86:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">MODULE</span>
<a name="87" /><span class="False">      87:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0dXNlZF8w"><span class="b">__exitused</span></a>
<a name="88" /><span class="Maybe">      88:</span> <span class="f">#</span><span class="n">else</span>
<a name="89" /><span class="Maybe">      89:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0dXNlZF8w"><span class="b">__exitused</span></a>  <a href="cpu.c_macros_ref.html#_X191c2VkXzA_"><span class="b">__used</span></a>
<a name="90" /><span class="Maybe">      90:</span> <span class="f">#</span><span class="n">endif</span>
<a name="91" /><span class="Maybe">      91:</span> 
<a name="92" /><span class="Maybe">      92:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0XzA_"><span class="b">__exit</span></a>          <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">exit</span><span class="f">.</span><span class="b">text</span><span class="f">)</span> <a href="cpu.c_macros_noref.html#_X19leGl0dXNlZF8w"><span class="b">__exitused</span></a> <a href="cpu.c_macros_ref.html#_X19jb2xkXzA_"><span class="b">__cold</span></a> <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="93" /><span class="Maybe">      93:</span> 
<a name="94" /><span class="Maybe">      94:</span> <span class="k">/* temporary, until all users are removed */</span>
<a name="95" /><span class="Maybe">      95:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19jcHVpbml0XzA_"><span class="b">__cpuinit</span></a>
<a name="96" /><span class="Maybe">      96:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19jcHVpbml0ZGF0YV8w"><span class="b">__cpuinitdata</span></a>
<a name="97" /><span class="Maybe">      97:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19jcHVpbml0Y29uc3RfMA__"><span class="b">__cpuinitconst</span></a>
<a name="98" /><span class="Maybe">      98:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19jcHVleGl0XzA_"><span class="b">__cpuexit</span></a>
<a name="99" /><span class="Maybe">      99:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19jcHVleGl0ZGF0YV8w"><span class="b">__cpuexitdata</span></a>
<a name="100" /><span class="Maybe">     100:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19jcHVleGl0Y29uc3RfMA__"><span class="b">__cpuexitconst</span></a>
<a name="101" /><span class="Maybe">     101:</span> 
<a name="102" /><span class="Maybe">     102:</span> <span class="k">/* Used for MEMORY_HOTPLUG */</span>
<a name="103" /><span class="Maybe">     103:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19tZW1pbml0XzA_"><span class="b">__meminit</span></a>        <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">meminit</span><span class="f">.</span><span class="b">text</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19jb2xkXzA_"><span class="b">__cold</span></a> <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="104" /><span class="Maybe">     104:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19tZW1pbml0ZGF0YV8w"><span class="b">__meminitdata</span></a>    <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">meminit</span><span class="f">.</span><span class="b">data</span><span class="f">)</span>
<a name="105" /><span class="Maybe">     105:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19tZW1pbml0Y29uc3RfMA__"><span class="b">__meminitconst</span></a>   <a href="cpu.c_macros_ref.html#_X19jb25zdHNlY3Rpb25fMA__"><span class="b">__constsection</span></a><span class="f">(</span><span class="f">.</span><span class="b">meminit</span><span class="f">.</span><span class="b">rodata</span><span class="f">)</span>
<a name="106" /><span class="Maybe">     106:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19tZW1leGl0XzA_"><span class="b">__memexit</span></a>        <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">memexit</span><span class="f">.</span><span class="b">text</span><span class="f">)</span> <a href="cpu.c_macros_noref.html#_X19leGl0dXNlZF8w"><span class="b">__exitused</span></a> <a href="cpu.c_macros_ref.html#_X19jb2xkXzA_"><span class="b">__cold</span></a> <a href="cpu.c_macros_ref.html#_bm90cmFjZV8x"><span class="b">notrace</span></a>
<a name="107" /><span class="Maybe">     107:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19tZW1leGl0ZGF0YV8w"><span class="b">__memexitdata</span></a>    <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">memexit</span><span class="f">.</span><span class="b">data</span><span class="f">)</span>
<a name="108" /><span class="Maybe">     108:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19tZW1leGl0Y29uc3RfMA__"><span class="b">__memexitconst</span></a>   <a href="cpu.c_macros_ref.html#_X19jb25zdHNlY3Rpb25fMA__"><span class="b">__constsection</span></a><span class="f">(</span><span class="f">.</span><span class="b">memexit</span><span class="f">.</span><span class="b">rodata</span><span class="f">)</span>
<a name="109" /><span class="Maybe">     109:</span> 
<a name="110" /><span class="Maybe">     110:</span> <span class="k">/* For assembly routines */</span>
<a name="111" /><span class="Maybe">     111:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19IRUFEXzA_"><span class="b">__HEAD</span></a>        <span class="f">.</span><span class="b">section</span>    <span class="e">&quot;.head.text&quot;</span><span class="f">,</span><span class="e">&quot;ax&quot;</span>
<a name="112" /><span class="Maybe">     112:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUXzA_"><span class="b">__INIT</span></a>        <span class="f">.</span><span class="b">section</span>    <span class="e">&quot;.init.text&quot;</span><span class="f">,</span><span class="e">&quot;ax&quot;</span>
<a name="113" /><span class="Maybe">     113:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19GSU5JVF8w"><span class="b">__FINIT</span></a>        <span class="f">.</span><span class="b">previous</span>
<a name="114" /><span class="Maybe">     114:</span> 
<a name="115" /><span class="Maybe">     115:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUREFUQV8w"><span class="b">__INITDATA</span></a>    <span class="f">.</span><span class="b">section</span>    <span class="e">&quot;.init.data&quot;</span><span class="f">,</span><span class="e">&quot;aw&quot;</span><span class="f">,</span><span class="f">%</span><span class="b">progbits</span>
<a name="116" /><span class="Maybe">     116:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUUk9EQVRBXzA_"><span class="b">__INITRODATA</span></a>    <span class="f">.</span><span class="b">section</span>    <span class="e">&quot;.init.rodata&quot;</span><span class="f">,</span><span class="e">&quot;a&quot;</span><span class="f">,</span><span class="f">%</span><span class="b">progbits</span>
<a name="117" /><span class="Maybe">     117:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19GSU5JVERBVEFfMA__"><span class="b">__FINITDATA</span></a>    <span class="f">.</span><span class="b">previous</span>
<a name="118" /><span class="Maybe">     118:</span> 
<a name="119" /><span class="Maybe">     119:</span> <span class="k">/* temporary, until all users are removed */</span>
<a name="120" /><span class="Maybe">     120:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19DUFVJTklUXzA_"><span class="b">__CPUINIT</span></a>
<a name="121" /><span class="Maybe">     121:</span> 
<a name="122" /><span class="Maybe">     122:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19NRU1JTklUXzA_"><span class="b">__MEMINIT</span></a>        <span class="f">.</span><span class="b">section</span>    <span class="e">&quot;.meminit.text&quot;</span><span class="f">,</span> <span class="e">&quot;ax&quot;</span>
<a name="123" /><span class="Maybe">     123:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19NRU1JTklUREFUQV8w"><span class="b">__MEMINITDATA</span></a>    <span class="f">.</span><span class="b">section</span>    <span class="e">&quot;.meminit.data&quot;</span><span class="f">,</span> <span class="e">&quot;aw&quot;</span>
<a name="124" /><span class="Maybe">     124:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19NRU1JTklUUk9EQVRBXzA_"><span class="b">__MEMINITRODATA</span></a>  <span class="f">.</span><span class="b">section</span>    <span class="e">&quot;.meminit.rodata&quot;</span><span class="f">,</span> <span class="e">&quot;a&quot;</span>
<a name="125" /><span class="Maybe">     125:</span> 
<a name="126" /><span class="Maybe">     126:</span> <span class="k">/* silence warnings when references are OK */</span>
<a name="127" /><span class="Maybe">     127:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19SRUZfMA__"><span class="b">__REF</span></a>            <span class="f">.</span><span class="b">section</span>       <span class="e">&quot;.ref.text&quot;</span><span class="f">,</span> <span class="e">&quot;ax&quot;</span>
<a name="128" /><span class="Maybe">     128:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19SRUZEQVRBXzA_"><span class="b">__REFDATA</span></a>        <span class="f">.</span><span class="b">section</span>       <span class="e">&quot;.ref.data&quot;</span><span class="f">,</span> <span class="e">&quot;aw&quot;</span>
<a name="129" /><span class="Maybe">     129:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19SRUZDT05TVF8w"><span class="b">__REFCONST</span></a>       <span class="f">.</span><span class="b">section</span>       <span class="e">&quot;.ref.rodata&quot;</span><span class="f">,</span> <span class="e">&quot;a&quot;</span>
<a name="130" /><span class="Maybe">     130:</span> 
<a name="131" /><span class="Maybe">     131:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__ASSEMBLY__</span>
<a name="132" /><span class="Maybe">     132:</span> <span class="k">/*</span>
<a name="133" /><span class="Maybe">     133:</span> <span class="k"> * Used for initialization calls..</span>
<a name="134" /><span class="Maybe">     134:</span> <span class="k"> */</span>
<a name="135" /><span class="Maybe">     135:</span> <span class="m">typedef</span> <span class="m">int</span> <span class="f">(</span><span class="f">*</span><span class="b">initcall_t</span><span class="f">)</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="136" /><span class="Maybe">     136:</span> <span class="m">typedef</span> <span class="m">void</span> <span class="f">(</span><span class="f">*</span><span class="b">exitcall_t</span><span class="f">)</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="137" /><span class="Maybe">     137:</span> 
<a name="138" /><span class="Maybe">     138:</span> <span class="m">extern</span> <span class="b">initcall_t</span> <span class="b">__con_initcall_start</span><span class="f">[</span><span class="f">]</span><span class="f">,</span> <span class="b">__con_initcall_end</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="139" /><span class="Maybe">     139:</span> <span class="m">extern</span> <span class="b">initcall_t</span> <span class="b">__security_initcall_start</span><span class="f">[</span><span class="f">]</span><span class="f">,</span> <span class="b">__security_initcall_end</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="140" /><span class="Maybe">     140:</span> 
<a name="141" /><span class="Maybe">     141:</span> <span class="k">/* Used for contructor calls. */</span>
<a name="142" /><span class="Maybe">     142:</span> <span class="m">typedef</span> <span class="m">void</span> <span class="f">(</span><span class="f">*</span><span class="b">ctor_fn_t</span><span class="f">)</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="143" /><span class="Maybe">     143:</span> 
<a name="144" /><span class="Maybe">     144:</span> <span class="k">/* Defined in init/main.c */</span>
<a name="145" /><span class="Maybe">     145:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">do_one_initcall</span><span class="f">(</span><span class="b">initcall_t</span> <span class="b">fn</span><span class="f">)</span><span class="f">;</span>
<a name="146" /><span class="Maybe">     146:</span> <span class="m">extern</span> <span class="m">char</span> <a href="cpu.c_macros_ref.html#_X19pbml0ZGF0YV8w"><span class="b">__initdata</span></a> <span class="b">boot_command_line</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="147" /><span class="Maybe">     147:</span> <span class="m">extern</span> <span class="m">char</span> <span class="f">*</span><span class="b">saved_command_line</span><span class="f">;</span>
<a name="148" /><span class="Maybe">     148:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">int</span> <span class="b">reset_devices</span><span class="f">;</span>
<a name="149" /><span class="Maybe">     149:</span> 
<a name="150" /><span class="Maybe">     150:</span> <span class="k">/* used by init/main.c */</span>
<a name="151" /><span class="Maybe">     151:</span> <span class="m">void</span> <span class="b">setup_arch</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="152" /><span class="Maybe">     152:</span> <span class="m">void</span> <span class="b">prepare_namespace</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="153" /><span class="Maybe">     153:</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a> <span class="b">load_default_modules</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="154" /><span class="Maybe">     154:</span> <span class="m">int</span> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a> <span class="b">init_rootfs</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="155" /><span class="Maybe">     155:</span> 
<a name="156" /><span class="Maybe">     156:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">(</span><span class="f">*</span><span class="b">late_time_init</span><span class="f">)</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="157" /><span class="Maybe">     157:</span> 
<a name="158" /><span class="Maybe">     158:</span> <span class="m">extern</span> <span class="m">bool</span> <span class="b">initcall_debug</span><span class="f">;</span>
<a name="159" /><span class="Maybe">     159:</span> 
<a name="160" /><span class="Maybe">     160:</span> <span class="f">#</span><span class="n">endif</span>
<a name="161" /><span class="Maybe">     161:</span>   
<a name="162" /><span class="Maybe">     162:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">MODULE</span>
<a name="163" /><span class="Maybe">     163:</span> 
<a name="164" /><span class="Maybe">     164:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__ASSEMBLY__</span>
<a name="165" /><span class="Maybe">     165:</span> 
<a name="166" /><span class="Maybe">     166:</span> <span class="k">/* initcalls are now grouped by functionality into separate </span>
<a name="167" /><span class="Maybe">     167:</span> <span class="k"> * subsections. Ordering inside the subsections is determined</span>
<a name="168" /><span class="Maybe">     168:</span> <span class="k"> * by link order. </span>
<a name="169" /><span class="Maybe">     169:</span> <span class="k"> * For backwards compatibility, initcall() puts the call in </span>
<a name="170" /><span class="Maybe">     170:</span> <span class="k"> * the device init subsection.</span>
<a name="171" /><span class="Maybe">     171:</span> <span class="k"> *</span>
<a name="172" /><span class="Maybe">     172:</span> <span class="k"> * The `id&apos; arg to __define_initcall() is needed so that multiple initcalls</span>
<a name="173" /><span class="Maybe">     173:</span> <span class="k"> * can point at the same handler without causing duplicate-symbol build errors.</span>
<a name="174" /><span class="Maybe">     174:</span> <span class="k"> */</span>
<a name="175" /><span class="Maybe">     175:</span> 
<a name="176" /><span class="Maybe">     176:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="b">id</span><span class="f">)</span> \
<a name="177" /><span class="Maybe">     177:</span>     <span class="m">static</span> <span class="b">initcall_t</span> <span class="b">__initcall_</span><span class="f">##</span><span class="b">fn</span><span class="f">##</span><span class="b">id</span> <a href="cpu.c_macros_ref.html#_X191c2VkXzA_"><span class="b">__used</span></a> \
<a name="178" /><span class="Maybe">     178:</span>     <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">__section__</span><span class="f">(</span><span class="e">&quot;.initcall&quot;</span> <span class="f">#</span><span class="b">id</span> <span class="e">&quot;.init&quot;</span><span class="f">)</span><span class="f">)</span><span class="f">)</span> <span class="f">=</span> <span class="b">fn</span>
<a name="179" /><span class="Maybe">     179:</span> 
<a name="180" /><span class="Maybe">     180:</span> <span class="k">/*</span>
<a name="181" /><span class="Maybe">     181:</span> <span class="k"> * Early initcalls run before initializing SMP.</span>
<a name="182" /><span class="Maybe">     182:</span> <span class="k"> *</span>
<a name="183" /><span class="Maybe">     183:</span> <span class="k"> * Only for built-in code, not modules.</span>
<a name="184" /><span class="Maybe">     184:</span> <span class="k"> */</span>
<a name="185" /><span class="Maybe">     185:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZWFybHlfaW5pdGNhbGxfMA__"><span class="b">early_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="b">early</span><span class="f">)</span>
<a name="186" /><span class="Maybe">     186:</span> 
<a name="187" /><span class="Maybe">     187:</span> <span class="k">/*</span>
<a name="188" /><span class="Maybe">     188:</span> <span class="k"> * A &quot;pure&quot; initcall has no dependencies on anything else, and purely</span>
<a name="189" /><span class="Maybe">     189:</span> <span class="k"> * initializes variables that couldn&apos;t be statically initialized.</span>
<a name="190" /><span class="Maybe">     190:</span> <span class="k"> *</span>
<a name="191" /><span class="Maybe">     191:</span> <span class="k"> * This only exists for built-in code, not for modules.</span>
<a name="192" /><span class="Maybe">     192:</span> <span class="k"> * Keep main.c:initcall_level_names[] in sync.</span>
<a name="193" /><span class="Maybe">     193:</span> <span class="k"> */</span>
<a name="194" /><span class="Maybe">     194:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cHVyZV9pbml0Y2FsbF8w"><span class="b">pure_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">0</span><span class="f">)</span>
<a name="195" /><span class="Maybe">     195:</span> 
<a name="196" /><span class="Maybe">     196:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y29yZV9pbml0Y2FsbF8w"><span class="b">core_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">1</span><span class="f">)</span>
<a name="197" /><span class="Maybe">     197:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y29yZV9pbml0Y2FsbF9zeW5jXzA_"><span class="b">core_initcall_sync</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">1s</span><span class="f">)</span>
<a name="198" /><span class="Maybe">     198:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cG9zdGNvcmVfaW5pdGNhbGxfMA__"><span class="b">postcore_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">2</span><span class="f">)</span>
<a name="199" /><span class="Maybe">     199:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cG9zdGNvcmVfaW5pdGNhbGxfc3luY18w"><span class="b">postcore_initcall_sync</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>    <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">2s</span><span class="f">)</span>
<a name="200" /><span class="Maybe">     200:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YXJjaF9pbml0Y2FsbF8w"><span class="b">arch_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">3</span><span class="f">)</span>
<a name="201" /><span class="Maybe">     201:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YXJjaF9pbml0Y2FsbF9zeW5jXzA_"><span class="b">arch_initcall_sync</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">3s</span><span class="f">)</span>
<a name="202" /><span class="Maybe">     202:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c3Vic3lzX2luaXRjYWxsXzA_"><span class="b">subsys_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">4</span><span class="f">)</span>
<a name="203" /><span class="Maybe">     203:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c3Vic3lzX2luaXRjYWxsX3N5bmNfMA__"><span class="b">subsys_initcall_sync</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>    <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">4s</span><span class="f">)</span>
<a name="204" /><span class="Maybe">     204:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZnNfaW5pdGNhbGxfMA__"><span class="b">fs_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>            <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">5</span><span class="f">)</span>
<a name="205" /><span class="Maybe">     205:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZnNfaW5pdGNhbGxfc3luY18w"><span class="b">fs_initcall_sync</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">5s</span><span class="f">)</span>
<a name="206" /><span class="Maybe">     206:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cm9vdGZzX2luaXRjYWxsXzA_"><span class="b">rootfs_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="b">rootfs</span><span class="f">)</span>
<a name="207" /><span class="Maybe">     207:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZGV2aWNlX2luaXRjYWxsXzA_"><span class="b">device_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">6</span><span class="f">)</span>
<a name="208" /><span class="Maybe">     208:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZGV2aWNlX2luaXRjYWxsX3N5bmNfMA__"><span class="b">device_initcall_sync</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>    <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">6s</span><span class="f">)</span>
<a name="209" /><span class="Maybe">     209:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGF0ZV9pbml0Y2FsbF8w"><span class="b">late_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">7</span><span class="f">)</span>
<a name="210" /><span class="Maybe">     210:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGF0ZV9pbml0Y2FsbF9zeW5jXzA_"><span class="b">late_initcall_sync</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_X19kZWZpbmVfaW5pdGNhbGxfMA__"><span class="b">__define_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">,</span> <span class="c">7s</span><span class="f">)</span>
<a name="211" /><span class="Maybe">     211:</span> 
<a name="212" /><span class="Maybe">     212:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0Y2FsbF8w"><span class="b">__initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span> <a href="cpu.c_macros_noref.html#_ZGV2aWNlX2luaXRjYWxsXzA_"><span class="b">device_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="213" /><span class="Maybe">     213:</span> 
<a name="214" /><span class="Maybe">     214:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0Y2FsbF8w"><span class="b">__exitcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span> \
<a name="215" /><span class="Maybe">     215:</span>     <span class="m">static</span> <span class="b">exitcall_t</span> <span class="b">__exitcall_</span><span class="f">##</span><span class="b">fn</span> <a href="cpu.c_macros_noref.html#_X19leGl0X2NhbGxfMA__"><span class="b">__exit_call</span></a> <span class="f">=</span> <span class="b">fn</span>
<a name="216" /><span class="Maybe">     216:</span> 
<a name="217" /><span class="Maybe">     217:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y29uc29sZV9pbml0Y2FsbF8w"><span class="b">console_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span> \
<a name="218" /><span class="Maybe">     218:</span>     <span class="m">static</span> <span class="b">initcall_t</span> <span class="b">__initcall_</span><span class="f">##</span><span class="b">fn</span> \
<a name="219" /><span class="Maybe">     219:</span>     <a href="cpu.c_macros_ref.html#_X191c2VkXzA_"><span class="b">__used</span></a> <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">con_initcall</span><span class="f">.</span><span class="b">init</span><span class="f">)</span> <span class="f">=</span> <span class="b">fn</span>
<a name="220" /><span class="Maybe">     220:</span> 
<a name="221" /><span class="Maybe">     221:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2VjdXJpdHlfaW5pdGNhbGxfMA__"><span class="b">security_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span> \
<a name="222" /><span class="Maybe">     222:</span>     <span class="m">static</span> <span class="b">initcall_t</span> <span class="b">__initcall_</span><span class="f">##</span><span class="b">fn</span> \
<a name="223" /><span class="Maybe">     223:</span>     <a href="cpu.c_macros_ref.html#_X191c2VkXzA_"><span class="b">__used</span></a> <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><a href="cpu.c_macros_noref.html#_c2VjdXJpdHlfaW5pdGNhbGxfMA__"><span class="b">security_initcall</span></a><span class="f">.</span><span class="b">init</span><span class="f">)</span> <span class="f">=</span> <span class="b">fn</span>
<a name="224" /><span class="Maybe">     224:</span> 
<a name="225" /><span class="Maybe">     225:</span> <span class="m">struct</span> <span class="b">obs_kernel_param</span> <span class="f">{</span>
<a name="226" /><span class="Maybe">     226:</span>     <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">;</span>
<a name="227" /><span class="Maybe">     227:</span>     <span class="m">int</span> <span class="f">(</span><span class="f">*</span><span class="b">setup_func</span><span class="f">)</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="228" /><span class="Maybe">     228:</span>     <span class="m">int</span> <span class="b">early</span><span class="f">;</span>
<a name="229" /><span class="Maybe">     229:</span> <span class="f">}</span><span class="f">;</span>
<a name="230" /><span class="Maybe">     230:</span> 
<a name="231" /><span class="Maybe">     231:</span> <span class="k">/*</span>
<a name="232" /><span class="Maybe">     232:</span> <span class="k"> * Only for really core code.  See moduleparam.h for the normal way.</span>
<a name="233" /><span class="Maybe">     233:</span> <span class="k"> *</span>
<a name="234" /><span class="Maybe">     234:</span> <span class="k"> * Force the alignment so the compiler doesn&apos;t space elements of the</span>
<a name="235" /><span class="Maybe">     235:</span> <span class="k"> * obs_kernel_param &quot;array&quot; too far apart in .init.setup.</span>
<a name="236" /><span class="Maybe">     236:</span> <span class="k"> */</span>
<a name="237" /><span class="Maybe">     237:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19zZXR1cF9wYXJhbV8w"><span class="b">__setup_param</span></a><span class="f">(</span><span class="b">str</span><span class="f">,</span> <span class="b">unique_id</span><span class="f">,</span> <span class="b">fn</span><span class="f">,</span> <span class="b">early</span><span class="f">)</span>            \
<a name="238" /><span class="Maybe">     238:</span>     <span class="m">static</span> <span class="m">const</span> <span class="m">char</span> <span class="b">__setup_str_</span><span class="f">##</span><span class="b">unique_id</span><span class="f">[</span><span class="f">]</span> <a href="cpu.c_macros_ref.html#_X19pbml0Y29uc3RfMA__"><span class="b">__initconst</span></a>    \
<a name="239" /><span class="Maybe">     239:</span>         <a href="cpu.c_macros_ref.html#_X19hbGlnbmVkXzA_"><span class="b">__aligned</span></a><span class="f">(</span><span class="c">1</span><span class="f">)</span> <span class="f">=</span> <span class="b">str</span><span class="f">;</span> \
<a name="240" /><span class="Maybe">     240:</span>     <span class="m">static</span> <span class="m">struct</span> <span class="b">obs_kernel_param</span> <span class="b">__setup_</span><span class="f">##</span><span class="b">unique_id</span>    \
<a name="241" /><span class="Maybe">     241:</span>         <a href="cpu.c_macros_ref.html#_X191c2VkXzA_"><span class="b">__used</span></a> <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">init</span><span class="f">.</span><span class="b">setup</span><span class="f">)</span>            \
<a name="242" /><span class="Maybe">     242:</span>         <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="f">(</span><span class="m">sizeof</span><span class="f">(</span><span class="m">long</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>    \
<a name="243" /><span class="Maybe">     243:</span>         <span class="f">=</span> <span class="f">{</span> <span class="b">__setup_str_</span><span class="f">##</span><span class="b">unique_id</span><span class="f">,</span> <span class="b">fn</span><span class="f">,</span> <span class="b">early</span> <span class="f">}</span>
<a name="244" /><span class="Maybe">     244:</span> 
<a name="245" /><span class="Maybe">     245:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19zZXR1cF8w"><span class="b">__setup</span></a><span class="f">(</span><span class="b">str</span><span class="f">,</span> <span class="b">fn</span><span class="f">)</span>                    \
<a name="246" /><span class="Maybe">     246:</span>     <a href="cpu.c_macros_noref.html#_X19zZXR1cF9wYXJhbV8w"><span class="b">__setup_param</span></a><span class="f">(</span><span class="b">str</span><span class="f">,</span> <span class="b">fn</span><span class="f">,</span> <span class="b">fn</span><span class="f">,</span> <span class="c">0</span><span class="f">)</span>
<a name="247" /><span class="Maybe">     247:</span> 
<a name="248" /><span class="Maybe">     248:</span> <span class="k">/* NOTE: fn is as per module_param, not __setup!  Emits warning if fn</span>
<a name="249" /><span class="Maybe">     249:</span> <span class="k"> * returns non-zero. */</span>
<a name="250" /><span class="Maybe">     250:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZWFybHlfcGFyYW1fMA__"><span class="b">early_param</span></a><span class="f">(</span><span class="b">str</span><span class="f">,</span> <span class="b">fn</span><span class="f">)</span>                    \
<a name="251" /><span class="Maybe">     251:</span>     <a href="cpu.c_macros_noref.html#_X19zZXR1cF9wYXJhbV8w"><span class="b">__setup_param</span></a><span class="f">(</span><span class="b">str</span><span class="f">,</span> <span class="b">fn</span><span class="f">,</span> <span class="b">fn</span><span class="f">,</span> <span class="c">1</span><span class="f">)</span>
<a name="252" /><span class="Maybe">     252:</span> 
<a name="253" /><span class="Maybe">     253:</span> <span class="k">/* Relies on boot_command_line being set */</span>
<a name="254" /><span class="Maybe">     254:</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a> <span class="b">parse_early_param</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="255" /><span class="Maybe">     255:</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a> <span class="b">parse_early_options</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="b">cmdline</span><span class="f">)</span><span class="f">;</span>
<a name="256" /><span class="Maybe">     256:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* __ASSEMBLY__ */</span>
<a name="257" /><span class="Maybe">     257:</span> 
<a name="258" /><span class="Maybe">     258:</span> <span class="k">/**</span>
<a name="259" /><span class="Maybe">     259:</span> <span class="k"> * module_init() - driver initialization entry point</span>
<a name="260" /><span class="Maybe">     260:</span> <span class="k"> * @x: function to be run at kernel boot time or module insertion</span>
<a name="261" /><span class="Maybe">     261:</span> <span class="k"> * </span>
<a name="262" /><span class="Maybe">     262:</span> <span class="k"> * module_init() will either be called during do_initcalls() (if</span>
<a name="263" /><span class="Maybe">     263:</span> <span class="k"> * builtin) or at module insertion time (if a module).  There can only</span>
<a name="264" /><span class="Maybe">     264:</span> <span class="k"> * be one per module.</span>
<a name="265" /><span class="Maybe">     265:</span> <span class="k"> */</span>
<a name="266" /><span class="Maybe">     266:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>    <a href="cpu.c_macros_noref.html#_X19pbml0Y2FsbF8w"><span class="b">__initcall</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">;</span>
<a name="267" /><span class="Maybe">     267:</span> 
<a name="268" /><span class="Maybe">     268:</span> <span class="k">/**</span>
<a name="269" /><span class="Maybe">     269:</span> <span class="k"> * module_exit() - driver exit entry point</span>
<a name="270" /><span class="Maybe">     270:</span> <span class="k"> * @x: function to be run when driver is removed</span>
<a name="271" /><span class="Maybe">     271:</span> <span class="k"> * </span>
<a name="272" /><span class="Maybe">     272:</span> <span class="k"> * module_exit() will wrap the driver clean-up code</span>
<a name="273" /><span class="Maybe">     273:</span> <span class="k"> * with cleanup_module() when used with rmmod when</span>
<a name="274" /><span class="Maybe">     274:</span> <span class="k"> * the driver is a module.  If the driver is statically</span>
<a name="275" /><span class="Maybe">     275:</span> <span class="k"> * compiled into the kernel, module_exit() has no effect.</span>
<a name="276" /><span class="Maybe">     276:</span> <span class="k"> * There can only be one per module.</span>
<a name="277" /><span class="Maybe">     277:</span> <span class="k"> */</span>
<a name="278" /><span class="Maybe">     278:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bW9kdWxlX2V4aXRfMA__"><span class="b">module_exit</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>    <a href="cpu.c_macros_noref.html#_X19leGl0Y2FsbF8w"><span class="b">__exitcall</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">;</span>
<a name="279" /><span class="Maybe">     279:</span> 
<a name="280" /><span class="False">     280:</span> <span class="f">#</span><span class="n">else</span> <span class="k">/* MODULE */</span>
<a name="281" /><span class="False">     281:</span> 
<a name="282" /><span class="False">     282:</span> <span class="k">/* Don&apos;t use these in loadable modules, but some people do... */</span>
<a name="283" /><span class="False">     283:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZWFybHlfaW5pdGNhbGxfMA__"><span class="b">early_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="284" /><span class="False">     284:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Y29yZV9pbml0Y2FsbF8w"><span class="b">core_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="285" /><span class="False">     285:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cG9zdGNvcmVfaW5pdGNhbGxfMA__"><span class="b">postcore_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="286" /><span class="False">     286:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_YXJjaF9pbml0Y2FsbF8w"><span class="b">arch_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="287" /><span class="False">     287:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c3Vic3lzX2luaXRjYWxsXzA_"><span class="b">subsys_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="288" /><span class="False">     288:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZnNfaW5pdGNhbGxfMA__"><span class="b">fs_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>            <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="289" /><span class="False">     289:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_ZGV2aWNlX2luaXRjYWxsXzA_"><span class="b">device_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="290" /><span class="False">     290:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bGF0ZV9pbml0Y2FsbF8w"><span class="b">late_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="291" /><span class="False">     291:</span> 
<a name="292" /><span class="False">     292:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c2VjdXJpdHlfaW5pdGNhbGxfMA__"><span class="b">security_initcall</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>        <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">fn</span><span class="f">)</span>
<a name="293" /><span class="False">     293:</span> 
<a name="294" /><span class="False">     294:</span> <span class="k">/* Each module must use one module_init(). */</span>
<a name="295" /><span class="False">     295:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bW9kdWxlX2luaXRfMA__"><span class="b">module_init</span></a><span class="f">(</span><span class="b">initfn</span><span class="f">)</span>                    \
<a name="296" /><span class="False">     296:</span>     <span class="m">static</span> <span class="m">inline</span> <span class="b">initcall_t</span> <span class="b">__inittest</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>        \
<a name="297" /><span class="False">     297:</span>     <span class="f">{</span> <span class="m">return</span> <span class="b">initfn</span><span class="f">;</span> <span class="f">}</span>                    \
<a name="298" /><span class="False">     298:</span>     <span class="m">int</span> <span class="b">init_module</span><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">alias</span><span class="f">(</span><span class="f">#</span><span class="b">initfn</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="299" /><span class="False">     299:</span> 
<a name="300" /><span class="False">     300:</span> <span class="k">/* This is only required if you want to be unloadable. */</span>
<a name="301" /><span class="False">     301:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bW9kdWxlX2V4aXRfMA__"><span class="b">module_exit</span></a><span class="f">(</span><span class="b">exitfn</span><span class="f">)</span>                    \
<a name="302" /><span class="False">     302:</span>     <span class="m">static</span> <span class="m">inline</span> <span class="b">exitcall_t</span> <span class="b">__exittest</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>        \
<a name="303" /><span class="False">     303:</span>     <span class="f">{</span> <span class="m">return</span> <span class="b">exitfn</span><span class="f">;</span> <span class="f">}</span>                    \
<a name="304" /><span class="False">     304:</span>     <span class="m">void</span> <span class="b">cleanup_module</span><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">alias</span><span class="f">(</span><span class="f">#</span><span class="b">exitfn</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="305" /><span class="False">     305:</span> 
<a name="306" /><span class="False">     306:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19zZXR1cF9wYXJhbV8w"><span class="b">__setup_param</span></a><span class="f">(</span><span class="b">str</span><span class="f">,</span> <span class="b">unique_id</span><span class="f">,</span> <span class="b">fn</span><span class="f">)</span>    <span class="k">/* nothing */</span>
<a name="307" /><span class="False">     307:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19zZXR1cF8w"><span class="b">__setup</span></a><span class="f">(</span><span class="b">str</span><span class="f">,</span> <span class="b">func</span><span class="f">)</span>             <span class="k">/* nothing */</span>
<a name="308" /><span class="Maybe">     308:</span> <span class="f">#</span><span class="n">endif</span>
<a name="309" /><span class="Maybe">     309:</span> 
<a name="310" /><span class="Maybe">     310:</span> <span class="k">/* Data marked not to be saved by software suspend */</span>
<a name="311" /><span class="Maybe">     311:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19ub3NhdmVkYXRhXzA_"><span class="b">__nosavedata</span></a> <a href="cpu.c_macros_ref.html#_X19zZWN0aW9uXzA_"><span class="b">__section</span></a><span class="f">(</span><span class="f">.</span><span class="b">data</span><span class="f">..</span><span class="b">nosave</span><span class="f">)</span>
<a name="312" /><span class="Maybe">     312:</span> 
<a name="313" /><span class="Maybe">     313:</span> <span class="k">/* This means &quot;can be init if no module support, otherwise module load</span>
<a name="314" /><span class="Maybe">     314:</span> <span class="k">   may call it.&quot; */</span>
<a name="315" /><span class="Maybe">     315:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX01PRFVMRVNfMA__"><span class="b">CONFIG_MODULES</span></a>
<a name="316" /><span class="Maybe">     316:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0X29yX21vZHVsZV8w"><span class="b">__init_or_module</span></a>
<a name="317" /><span class="Maybe">     317:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0ZGF0YV9vcl9tb2R1bGVfMA__"><span class="b">__initdata_or_module</span></a>
<a name="318" /><span class="Maybe">     318:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0Y29uc3Rfb3JfbW9kdWxlXzA_"><span class="b">__initconst_or_module</span></a>
<a name="319" /><span class="Maybe">     319:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUX09SX01PRFVMRV8w"><span class="b">__INIT_OR_MODULE</span></a>    <span class="f">.</span><span class="b">text</span>
<a name="320" /><span class="Maybe">     320:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUREFUQV9PUl9NT0RVTEVfMA__"><span class="b">__INITDATA_OR_MODULE</span></a>    <span class="f">.</span><span class="b">data</span>
<a name="321" /><span class="Maybe">     321:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUUk9EQVRBX09SX01PRFVMRV8w"><span class="b">__INITRODATA_OR_MODULE</span></a>    <span class="f">.</span><span class="b">section</span> <span class="e">&quot;.rodata&quot;</span><span class="f">,</span><span class="e">&quot;a&quot;</span><span class="f">,</span><span class="f">%</span><span class="b">progbits</span>
<a name="322" /><span class="False">     322:</span> <span class="f">#</span><span class="n">else</span>
<a name="323" /><span class="False">     323:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0X29yX21vZHVsZV8w"><span class="b">__init_or_module</span></a> <a href="cpu.c_macros_ref.html#_X19pbml0XzA_"><span class="b">__init</span></a>
<a name="324" /><span class="False">     324:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0ZGF0YV9vcl9tb2R1bGVfMA__"><span class="b">__initdata_or_module</span></a> <a href="cpu.c_macros_ref.html#_X19pbml0ZGF0YV8w"><span class="b">__initdata</span></a>
<a name="325" /><span class="False">     325:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19pbml0Y29uc3Rfb3JfbW9kdWxlXzA_"><span class="b">__initconst_or_module</span></a> <a href="cpu.c_macros_ref.html#_X19pbml0Y29uc3RfMA__"><span class="b">__initconst</span></a>
<a name="326" /><span class="False">     326:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUX09SX01PRFVMRV8w"><span class="b">__INIT_OR_MODULE</span></a> <a href="cpu.c_macros_noref.html#_X19JTklUXzA_"><span class="b">__INIT</span></a>
<a name="327" /><span class="False">     327:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUREFUQV9PUl9NT0RVTEVfMA__"><span class="b">__INITDATA_OR_MODULE</span></a> <a href="cpu.c_macros_noref.html#_X19JTklUREFUQV8w"><span class="b">__INITDATA</span></a>
<a name="328" /><span class="False">     328:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19JTklUUk9EQVRBX09SX01PRFVMRV8w"><span class="b">__INITRODATA_OR_MODULE</span></a> <a href="cpu.c_macros_noref.html#_X19JTklUUk9EQVRBXzA_"><span class="b">__INITRODATA</span></a>
<a name="329" /><span class="Maybe">     329:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/*CONFIG_MODULES*/</span>
<a name="330" /><span class="Maybe">     330:</span> 
<a name="331" /><span class="False">     331:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">MODULE</span>
<a name="332" /><span class="False">     332:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0X3BfMA__"><span class="b">__exit_p</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="b">x</span>
<a name="333" /><span class="Maybe">     333:</span> <span class="f">#</span><span class="n">else</span>
<a name="334" /><span class="Maybe">     334:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19leGl0X3BfMA__"><span class="b">__exit_p</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a>
<a name="335" /><span class="Maybe">     335:</span> <span class="f">#</span><span class="n">endif</span>
<a name="336" /><span class="Maybe">     336:</span> 
<a name="337" /><span class="True">     337:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_INIT_H */</span>
<a name="338" /><span class="True">     338:</span> </pre>
  </body>
</html>
